<?php 
class Historico{
	
	public $acessos;
	
	public static function inserir($idUsuario, $idCurso, $url){

		$strUrl = implode("/", array_slice($url, 2));
		if(empty($strUrl)) $strUrl = "apresentacao";
		
		$srtQuery = "INSERT INTO historicoNavegacao VALUES(DEFAULT, $idUsuario, $idCurso, '$strUrl', NOW())";
		if(!BancoDados::query($srtQuery)){
			//lançar erro
			return false;				
		}
		return true;
	}
	
	public function __construct($idUsuario, $idCurso, $limite = null){
		$srtQuery  = "SELECT * FROM historicoNavegacao WHERE idUsuario = $idUsuario AND idCurso = $idCurso ORDER BY dataHora DESC";
		$srtQuery .= is_int($limite) ? " LIMIT $limite;" : ";";
		$result = BancoDados::query($srtQuery);
		if(!$result){
			//lançar erro
			return false;
		}
		
		$entrys = array();
		
		foreach ($result as $index => $row) {
			$arrUrl = explode("/", $row['url']);
			$acesso['area'] = $arrUrl[1];
			
			$this->acessos[] = $acesso;
		}
	}
	
	public function getHistoricoGeral($idUsuario, $idCurso){
		$srtQuery  = "SELECT * FROM historicoNavegacao WHERE idUsuario = $idUsuario AND idCurso = $idCurso ORDER BY dataHora DESC;";
		$result = BancoDados::query($srtQuery);
		return $result;
	}
	
	public function getHistoricoEspecifico($idCurso, $idUsuario, $strDataInicio, $strDataFim, $strRecurso, $strTodosDias){
		if($strRecurso == "todos"){
			$strQueryHist = "SELECT * FROM historicoNavegacao WHERE idUsuario = 21 AND idCurso = $idCurso;";
		}else{
			$strQueryHist = "SELECT * FROM historicoNavegacao WHERE idUsuario = 21 AND idCurso = $idCurso AND url LIKE '$strRecurso%';";
		}
		$result = BancoDados::query($strQueryHist);
		$resultados = array();
		$k = 0;
		$dataInicioExplodida = array();
		$dataFimExplodida = array();
		$dataExplodida = array();
		foreach($result as $resultado){
			$dataExplodida = explode(" ", $resultado['dataHora']);
			$dataExplodida = explode("-", $dataExplodida[0]);
			$dataInicioExplodida = explode("/", $strDataInicio);
			$dataFimExplodida = explode("/", $strDataFim);
			if($strTodosDias == "todos"){
				return $result;
			}
			if(comparaDatas($dataExplodida[2],$dataExplodida[1],$dataExplodida[0], $dataInicioExplodida[0], $dataInicioExplodida[1], $dataInicioExplodida[2]) != 1 && comparaDatas($dataExplodida[2],$dataExplodida[1],$dataExplodida[0], $dataFimExplodida[0], $dataFimExplodida[1], $dataFimExplodida[2]) != -1){
				$resultados[$k] = $resultado;
			}
			$k++;
		}
		return $resultados;
	}
	
	public function preencheRecursosModulos($idCurso){
		$k = 0;
		$modulosNomes = array();
		$strQueryModulos = "SELECT * FROM modulos WHERE idCurso = $idCurso;";
		$modulos = BancoDados::query($strQueryModulos);
		foreach($modulos as $modulo){
			$modulosNomes[$k]['titulo'] = $modulo['titulo'];
			$modulosNomes[$k]['id'] = $modulo['idModulo'];
			$k++;
		}
		return $modulosNomes;
	}
}
?>